Method of providing interoperability of heterogeneous network devices and network device using the same

ABSTRACT

A method and device of enabling interoperation between different devices over a network are provided. A test code corresponding to a service to be performed using device information received from a service providing device in a network is generated, the test code is transmitted to the service providing device, a result of the test code execution is received from the service providing device, and interoperability with the service providing device is determined with respect to the service by using the result of the execution of the test code. An environment suitable for interoperation with the service providing device is established when interoperation with the service providing device is possible.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(a) of Korean Patent Application No. 10-2005-122898, filed Dec. 14, 2005, in the Korean Intellectual Property Office, the entire disclosure of which is hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to middleware. More particularly, the present invention relates to a method of enabling ready and stable interoperation between different devices in a dynamic network environment and a network device using the method.

2. Description of the Related Art

Middleware consists generally of software connecting different servers and clients in a variety of computing environments. Also, in a narrow range of meaning, middleware consists of software bridging the difference between various types of hardware, network protocols, application programs, local area network (LAN) environments, personal computer (PC) environments and operating systems installed within a single company. Namely, middleware is software enabling smooth communication between an application program and an operating environment in complex heterogeneous networks.

With the popularity of super high speed Internet and development of short range wireless communication technology, interoperation between different devices is becoming increasingly important. For example, home network devices may have a need to interoperate with each other for proper execution.

In particular, when the properties of other devices are not known, network devices need to interoperate with other devices in a dynamic network environment, such as an ad hoc network. For example, when a user of a home network-based audio system purchases a new personal digital assistant (PDA) and takes the PDA home, the user may want to play an MP3 file stored in the PDA using the networked audio system. In such an installation, network devices frequently need to interoperate with each other without knowing the properties of other devices on the network.

When all network devices in a network support a particular protocol and interoperate with other devices in the network, interoperation between the network devices and the other devices may be enabled by setting the network devices to operate according to the particular protocol. However, in an ad hoc network environment where networked devices are more diversified and the platform or protocol of each device is different, network devices not knowing the properties of other network devices may not readily interoperate with the other devices.

Accordingly, a method and device for enabling stable and effective interoperation between different network devices is needed.

SUMMARY OF THE INVENTION

Exemplary embodiments of the present invention secure ready and stable interoperation between different devices without knowing the properties of other devices.

It is an aspect of exemplary embodiments of the present invention to enable ready and effective interoperation between different devices without being limited by type of device or system property.

It is another aspect of exemplary embodiments of the present invention to enable easy interoperation between different devices without requiring user manipulation, thereby improving convenience.

It is another aspect of exemplary embodiments of the present invention to dynamically expand a function necessary for device interoperation by appropriately providing a service providing device with its necessary function expansion module, and to enable ready interoperation.

It is a further aspect of exemplary embodiments of the present invention to provide device interoperation having forward compatibility by enabling easy interoperation between new device and existing devices.

Exemplary embodiments of the present invention provide a method of enabling interoperation between different devices on a network. The method includes generating a test code corresponding to a service to be performed using device information received from a service providing device in a network, and transmitting the test code to the service providing device, receiving a result of an execution of the test code from the service providing device, and determining interoperability with the service providing device with respect to the service by using the result of the execution of the test code. The method further includes establishing an environment suitable for interoperation with the service providing device, when interoperation with the service providing device is possible.

Determining interoperability includes transmitting the test code to the service providing device and receiving the result of the execution of the test code from the service providing device, generating a function expansion module necessary for the service providing device performing the interoperation by using the result of the execution of the test code, including the function expansion module in the test code and transmitting the test code to the service providing device, and determining the interoperability by using the result of the execution of the test code received from the service providing device, the service providing device being dynamically expanded by the function expansion module.

Exemplary embodiments of the present invention provide a network device, including a test code generation unit for generating a test code corresponding to a service to be performed using device information received from a service providing device in a network, and an interoperability determination unit for transmitting the test code to the service providing device, receiving a result of an execution of the test code from the service providing device and determining interoperability with the service providing device with respect to the service by using the result of the execution of the test code. The network device further includes an environment establishment unit for establishing an environment suitable for interoperation with the service providing service, when interoperation with the service providing device is possible.

The network device may further include a function expansion module generation unit for generating a function expansion module necessary for the service providing device performing the interoperation by using the result of the execution of the test code, and including the function expansion module in the test code and transmitting the test code to the service providing device.

In an exemplary implementation the network may be an ad hoc network.

In another exemplary implementation the function expansion module can comprise transmitted/received mobile code.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other exemplary features and advantages of the present invention will become more apparent from the following detailed description of certain exemplary embodiments thereof when taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a flowchart illustrating a method of enabling interoperation between different devices according to an exemplary embodiment of the present invention;

FIG. 2 is a flowchart illustrating an example of step S150 illustrated in the exemplary embodiment of FIG. 1;

FIG. 3 is a block diagram illustrating a network device according to an exemplary embodiment of the present invention; and

FIG. 4 is a diagram illustrating interoperation between a personal digital assistant (PDA) and a photo printer in accordance with an exemplary embodiment of the present invention.

Throughout the drawings, like reference numbers should be understood to refer to like elements, features, and structures.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The matters exemplified in this description are provided to assist in a comprehensive understanding of various exemplary embodiments of the present invention disclosed with reference to the accompanying figures. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the exemplary embodiments described herein can be made without departing from the scope and spirit of the claimed invention. Descriptions of well-known functions and constructions are omitted for clarity and conciseness.

FIG. 1 is a flowchart illustrating a method of enabling interoperation between different devices according to an exemplary embodiment of the present invention.

Referring to FIG. 1, device information is received from a service providing device in a network, step S110.

A control device and a service providing device exchange device information through processes such as a service announcement and a service discovery. Through this exchange, the control device receives device information of the service providing device. Interoperation, such as the service announcement and service discovery described above, can be performed according to a Rendezvous protocol and a BEEP protocol.

The device information may include operating system information, system library information, Java Virtual Machine (JVM) information, memory information and language information and central processing unit (CPU) information of the device.

When device information is received from the service providing device, the control device receives a user's selection on the service providing device and a service to be performed, step S120. For example, when the control device is a PDA and the service providing device is an MP3 player, a user may manipulate the PDA to transmit an MP3 file to the MP3 player, which is the service proving device.

After the service providing device and the service to be performed are selected, the method of enabling interoperation between different devices according to the present exemplary embodiment determines whether a test code corresponding to the service to be performed can be generated by using the device information received from the service providing device, step S130.

For example, when the control device is a PDA and the service providing device is an MP3 player, and a user manipulates the PDA to transmit an MP3 file to the MP3 player, the PDA determines whether a test code can be generated by using device information received from the MP3 player, its own device information and information on an MP3 file transmission service. The test code can be utilized for determining interoperability between the PDA and the MP3 player for file transmission. For example, when interoperation for file transmission is not possible as a result of comparing device information between the PDA and the MP3 player, the PDA may determine that the test code cannot be generated.

When the test code cannot be generated, the process ends. When the test code can be generated, the test code is generated by using device information received from the service providing device, step S140.

An appropriate test code is generated according to information about the control device, performing the operations in FIG. 1, the device information received from the service providing device, and the service to be performed.

In an exemplary implementation, generating the test code is performed by searching a table for a test code corresponding to the service to be performed and device information received from the service providing device. The table stores every type of test code corresponding to services and device information.

When the test code is generated, the generated test code can be transmitted to the service providing device and a result of an execution of the test code is received from the service providing device, step S150.

When execution of the test code fails, step S150 may be repeated at least a certain number of times and the test code changed for each repetition. The test code may be changed according to the result of an execution of the test code. After changing the test code according to an error type occurring when executing the test code in the service providing device, transmitting the test code and receiving the result of an execution of the test code may be repeated at least a certain number of times.

A test code can be transmitted to the service providing device, but the result the test code execution may not be received therefrom even after a period of time passes. In this case, the result of an execution of the test code may be determined as a failure. Such a determination prevents the control device from waiting for a response from the service providing device, after transmission of the test code, when the service providing device cannot transmit the result of an execution of the test code since an error occurs in the service providing device.

The method of enabling interoperation between different devices according to the present exemplary embodiment determines interoperability between the control device and the service providing device by using the result of an execution of the test code, step S160. For example, when the execution of the test code results in a success, interoperation between the control device and the service providing device may be determined as possible.

Further, an initial execution of the test code may result in a failure but a subsequent execution of the test code may result in a success. In this case, interoperation between the control device and the service providing device may be determined as possible.

When interoperation between the control device and the service providing device is possible, the method of enabling interoperation between different devices sets up the control device and the service providing device to establish an environment suitable for interoperation therebetween, and performs the service to be performed through the interoperation between the control device and the service providing device, step S170.

In this instance, the environment suitable for interoperation may be an environment in which the test code has been successfully executed.

When interoperation between the control devices is not possible, the process ends.

FIG. 2 is a flowchart illustrating an example of step S150 illustrated in the exemplary embodiment of FIG. 1.

Referring to FIG. 2, the generated test code is transmitted to the service providing device, step S210.

The result of a test code execution is received from the service providing device and a determination is made whether the execution of the test code results in failure or success, step S220. For example, the result of an execution of the test code received from the service providing device may include information associated with its success/failure and, in the case of the failure, information associated with a cause of the failure. In this instance, a success indicates the test code is normally executed and a failure indicates the test code is not normally executed.

When the result of an execution of the test code is not received from the service providing device after a period of time, the execution of the test code may be determined as a failure.

When the execution of the test code is determined as a success, step S220, the control device may determine that interoperation between the control device and the service providing is possible (FIG. 1, step S160).

When the execution of the test code is determined as a failure, the control device determines whether transmission of the test code has been repeated at least a certain number of times, step S230.

When transmission of the test code is determined to have been repeated at least a certain number of times, the control device may no longer transmit a test code. Further, the control device may determine that interoperation between the control device and the service providing is not possible, FIG. 1, step S160, in which case the process ends.

When transmission of the test code is determined to have not been repeated a certain number of times, the control device determines whether a function expansion module is necessary for interoperation with the service providing device, step 240. Determining whether the function expansion module is necessary may be performed by using the result of an execution of the test code.

When the function expansion module for interoperation is determined to be necessary, the control device determines whether the function expansion module can be generated by using the result of an execution of the test code received from the service providing device, step S250. The function expansion module can be a mobile code for dynamically expanding a function necessary when the service providing device performs the corresponding service. The mobile code can be executed in a remote location, and also may be easily executed without regard to a platform. Accordingly, when transmitting/receiving the function expansion module as a mobile code, the function may be dynamically expanded.

Further, the mobile code may not be necessary every time. The necessity of the mobile code may be determined according to the result of an execution of the test code which is performed in the service providing device. For example, whether the function expansion module can be generated can be determined by searching a table for a function expansion module corresponding to the result of an execution of the test code received from the service providing device. In this instance, the table stores every type of function expansion module.

When the control device determines that the function expansion module cannot be generated, the control device then returns to determine whether interoperation between the control device and the service providing is possible (FIG. 1, step S160). When the control device determines that the function expansion module can be generated, the control device generates the function expansion module, step S260. For example, generation of a function expansion module may be performed by searching a table storing every type of function expansion module for a function expansion module corresponding to the result of an execution of the test code received from the service providing device.

When the function expansion module is generated or determined as unnecessary, step S240, the control device corrects the test code, step S270. In this instance, the test code may be corrected according to the result of an execution of the test code received from the service providing device. For example, correcting the test code may be performed by searching a table for a corresponding correction code. In this instance, the table stores correction codes according to a result of an execution of each test code.

Also, in operation S270, when the function expansion module is generated, the control device may include the generated function expansion module in the corrected test code. In this instance, the function expansion module may be included in the test code as a mobile code and transmitted from the control device to the service providing device. When the function expansion module is transmitted to the service providing device, the service providing device may execute the received function expansion module and dynamically expand a function.

After correcting the test code, the control device returns to step S210 and transmits the test code to the service providing device. When the function expansion module is included in the test code, the service providing device executes the received function expansion module and dynamically expands its function. The service providing device then executes a test code and provides a test code execution result to the control device. When the received result of the test code execution is a success, the control device may determine that interoperation between the control device and the service providing device is possible (FIG. 1, step S160).

FIG. 3 is a block diagram illustrating a network device according to an exemplary embodiment of the present invention.

Referring to FIG. 3, the network device according to the present exemplary embodiment includes a test code generation unit 310, an interoperability determination unit 325, an environment establishment unit 340, and a function expansion module generation unit 350. The interoperability determination unit 325 can include a test code transmitting/receiving unit 320 and a determination unit 330.

The test code generation unit 310 generates a test code corresponding to a service to be performed by using device information received from a service providing device in a network.

In an exemplary implementation, the network may be an ad hoc network. Also, the device information received from the service providing device may be information which is obtained through a discovery process with respect to device information announced from the service providing device. In this case, the processes, such as an announcement and a discovery, can be performed according to a Rendezvous protocol and the like.

Also, the device information may include operating system information, system library information, Java Virtual Machine (JVM) information, memory information, language information, and CPU information of the device.

The test code generation unit 310 may generate a test code by searching a table for a test code corresponding to a service to be performed and device information received from the service providing device. In an exemplary implementation, the table can store every type of test code corresponding to services and device information.

The interoperability determination unit 325 transmits a test code to a service providing device and receives a test code execution result from the service providing device. Also, the interoperability determination unit 325 determines interoperability with the service providing device by using the test code execution result.

The test code transmitting/receiving unit 320 transmits the test code to the service providing device and receives the result of the test code execution from the service providing device. The determination unit 330 may determine interoperability with the service providing device with respect to the service by using the test code execution result. When execution of the test code fails, the test code transmitting/receiving unit 320 may repeat transmitting a test code and receiving a test code execution result at least a certain number of times, and changing the test code for each repetition.

When interoperation with a service providing device is possible, the environment establishment unit 340 establishes an environment suitable for interoperation with the service providing device.

When execution of a test code fails, the function expansion module generation unit 350 generates a function expansion module necessary when the service providing device performs interoperation. In this instance, the function expansion module generation unit 350 may generate a function expansion module by searching a table for a function expansion module corresponding to the result of an execution of the test code received from the service providing device. In an exemplary implementation, the table can store every type of function expansion module.

The generated function expansion module can be transmitted to the service providing device as a mobile code.

When the generated function expansion module in the function expansion module generation unit 350 is transmitted to the service providing device and the function thereof is dynamically expanded, the determination unit 330 may determine interoperability with the service providing device by using the result of an execution of the test code which is received from the service providing device. In this instance, the function of the service providing device is dynamically expanded by the function expansion module.

When a test code execution result is not received from the service providing device after a period of time, a network device may determine that the execution of the test code resulted in failure.

FIG. 4 is a diagram illustrating interoperation between a PDA 410 and a photo printer 420 in accordance with an exemplary embodiment of the present invention.

Referring to FIG. 4, a personal digital assistant (PDA) 410 enables a user to output a picture file to a photo printer 420, received from the PDA 410, by discovering a service announcement of the photo printer 420. The user may manipulate the PDA 410 to select a service for outputting the picture file to the photo printer 420.

When the user selects the service of outputting the picture file to the photo printer 420, the PDA 410 generates a test code by using device information of the photo printer 420 and device information of the PDA 410, and the selected service information. The test code is utilized for testing whether a function of interoperating with the PDA 410 may be performed in the photo printer 420. A test code may be generated according to device properties of the photo printer 420 or the PDA 410, or according to a service type selected by the user.

When the test code is generated, the PDA 410 transmits the test code to the photo printer 420. The photo printer 420 receives and executes the test code, and transmits the test code execution result to the PDA 410.

When interoperation between the PDA 410 and the photo printer 420 is possible, the PDA 410 establishes an environment suitable for interoperation with the photo printer 420. Further, the PDA 410 enables the user to select a picture file, baby.gif for example, for outputting to the photo printer 420.

After the user selects the picture file, baby.gif in this example, the photo printer 420 receives and prints the selected picture file.

Operations of interoperating network devices according to the present exemplary embodiment have been described with reference to FIG. 4. However, according to exemplary embodiments, when the test code execution result is a failure, the PDA 410 may transmit to the photo printer 420 a function expansion module when the photo printer 420 interoperates with the PDA 410. Through this interoperation, the PDA 410 enables the photo printer 420 to dynamically expand a function. Further, when the test code is transmitted to the photo printer 420 but no response is received after a period of time, the PDA 410 may determine that execution of the test code is a failure. When execution of the test code is determined as a failure, the PDA 410 may repeat transmitting a test code and receiving a result of the test code execution at least a certain number of times, and changing the test code for each repetition.

According to exemplary embodiments of the present invention, it is possible to secure ready and flexible interoperation between different devices not knowing each other's properties.

Also, according to exemplary embodiments of the present invention, it is possible to enable ready and effective interoperation between different devices without being limited by the type of device or system properties.

Also, according to exemplary embodiments of the present invention, it is possible to enable easy interoperation between different devices without user manipulation, thereby improving user convenience.

Also, according to exemplary embodiments of the present invention, it is possible to dynamically expand a function for interoperation by appropriately providing a service providing device with its function expansion module, and to enable ready interoperation.

While the present invention has been particularly shown and described with reference to certain exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention as defined by the appended claims and equivalents thereof. 

1. A method of enabling interoperation between different devices of a network, the method comprising: generating a test code corresponding to a service to be performed; transmitting the test code to a service providing device; receiving a test code execution result from the service providing device; determining interoperability with the service providing device with respect to the service to be performed by using the test code execution result; and establishing an environment suitable for interoperation with the service providing device.
 2. The method of claim 1, wherein determining the interoperability comprises: transmitting the test code to the service providing device; receiving the test code execution result from the service providing device; generating a function expansion module necessary for the service providing device; performing the interoperation by using the test code execution result; including the function expansion module in the test code; transmitting the test code to the service providing device; and determining the interoperability by using the test code execution result received from the service providing device, the service providing device being dynamically expanded by the function expansion module.
 3. The method of claim 2, wherein the generating of the function expansion module comprises searching a table for a function expansion module corresponding to the test code execution result received from the service providing device.
 4. The method of claim 2, wherein the function expansion module is transmitted as a mobile code.
 5. The method of claim 1, further comprising, when the result of the test code execution is a failure, repeating the transmitting of the test code and receiving the test code execution result at least a certain number of times, wherein the test code is changed for each repetition.
 6. The method of claim 1, wherein when the test code execution result is not received from the service providing device after a period of time, the result of the test code execution is determined a failure.
 7. The method of claim 1, wherein the network includes an ad hoc network.
 8. The method of claim 1, wherein the generating of the test code comprises searching a table for a test code corresponding to the service to be performed and the device information received from the service providing device, wherein the table stores every type of test code.
 9. A network device comprising: a test code generation unit for generating a test code corresponding to a service to be performed using device information received from a service providing device in a network; an interoperability determination unit for transmitting the test code to the service providing device, receiving a test code execution result from the service providing device, and determining interoperability with the service providing device with respect to the service to be performed by using the test code execution result; and an environment establishment unit for establishing an environment suitable for interoperation with the service providing service.
 10. The device of claim 9, further comprising: a function expansion module generation unit for generating a function expansion module necessary for the service providing device and performing the interoperation by using the test code execution result, including the function expansion module in the test code and transmitting the test code to the service providing device.
 11. The device of claim 10, wherein the interoperability determination unit determines interoperability by using the test code execution result received from the service providing device of which a function is dynamically expanded using the function expansion module.
 12. The device of claim 10, wherein the function expansion module generation unit generates a function expansion module corresponding to the test code execution result received from the service providing device.
 13. The device of claim 10, wherein the function expansion module is transmitted to the service providing device as a mobile code.
 14. The device of claim 9, wherein the network device, when the result of the test code execution is a failure, repeats transmitting the test code and receiving the test code execution result at least a certain number of times and wherein the test code is changed for each repetition.
 15. The device of claim 9, wherein when the test code execution result is not received from the service providing device for a period of time, the network device determines that the result of the test code execution is a failure.
 16. The device of claim 9, wherein the network includes an ad hoc network.
 17. The device of claim 9, wherein the test code generation unit searches a table for a test code corresponding to the service to be performed and device information received from the service providing device, and generates the test code.
 18. The method of claim 1, wherein the test code is generated using device information received from a service providing device.
 19. A computer readable medium having stored thereon instructions for enabling interoperation between different devices of a network, the instructions comprising: a first set of instructions for generating a test code corresponding to a service to be performed; a second set of instructions for transmitting the test code to a service providing device; a third set of instructions for receiving a test code execution result from the service providing device; a fourth set of instructions for determining interoperability with the service providing device with respect to the service to be performed by using the test code execution result; and a fifth set of instructions for establishing an environment suitable for interoperation with the service providing device.
 20. The instructions of claim 19, wherein the set of instructions for determining the interoperability comprise: a sixth set of instructions for transmitting the test code to the service providing device; a seventh set of instructions for receiving the test code execution result from the service providing device; an eighth set of instructions for generating a function expansion module necessary for the service providing device; a ninth set of instructions for performing the interoperation by using the test code execution result; a tenth set of instructions for including the function expansion module in the test code and transmitting the test code to the service providing device; and an eleventh set of instructions for determining the interoperability by using the test code execution result received from the service providing device, the service providing device being dynamically expanded by the function expansion module.
 21. The instructions of claim 20, wherein the eighth set of instructions for generating of the function expansion module comprise a set of instructions for searching a table for a function expansion module corresponding to the test code execution result received from the service providing device.
 22. The instructions of claim 19, wherein when the result of the test code execution is a failure, a twelfth set of instructions for repeating transmitting the test code and receiving the test code execution result at least a certain number of times and wherein the test code is changed for each repetition.
 23. The instructions of claim 19, wherein the first set of instructions for generating the test code comprise instructions for searching a table for a test code corresponding to the service to be performed and the device information received from the service providing device, wherein the table stores every type of test code.
 24. The method of claim 3, wherein the table stores every type of function expansion module.
 25. The device of claim 12, wherein the function expansion module is generated by searching a table storing every type of function expansion module.
 26. The device of claim 17, wherein the table stores every type of test code.
 27. The instructions of claim 21, wherein the table stores every type of function expansion module. 